home *** CD-ROM | disk | FTP | other *** search
-
-
- ************************************************************
- Psuedo code for interrupt handler:
-
- On keyboard interrupt do {
- save context
- if keyboard has input, save with work request to level3 queue
- if block is ready {
- reset indicator
- add check_1st_blk to level2 queue
- }
- restore context
- enable interrupts
- return from interrupt
- }
-
- On timer interrupt do {
- save context
- if write ok flag set{ /*done with interrupts off to avoid clash */
- initiate write
- clear flag
- }
- enable interrupts
- capture sample, save with work request to level2 queue
- step minute counter, on overflow {
- reset counter
- put minute change work request in level3 queue
- }
- return from interrupt
- }
-
- Psuedo code for tasks
-
- Analyze sample {
- perform statistical analysis
- if out of bounds {
- compute correction
- output correction
- }
- return
- }
-
- Check Block Pt 1{
- compute partial checksum
- save result with pt2 work request in level2 queue
- return
- }
-
- Check Block Pt 2{
- continue checksum
- save result with pt3 work request in level2 queue
- return
- }
-
- Check Block pt3 {
- continue checksum
- save result with pt4 work request in level2 queue
- return
- }
-
- Check Block pt4 {
- complete checksum
- if ok, set write ok flag
- return
- }
-
- Parse input {
- save input parameter in command line buffer.
- If input keystroke is a terminal symbol{
- parse buffer;
- output manual correction;
- clear buffer;
- }
- return;
- }
-
- Minute change{
- increment minutes-ones
- add work request for digit change to minutes-ones to level4 queue
- add work request for digit step level3 queue
- on overflow {
- add work request for digit change to minutes-tens to level 4 queue
- add work request for digit step level3 queue
- }
- on tens overflow {
- add work request for digit change to hours-ones to level 4 queue
- add work request for digit step level3 queue
- }
- on hours ones overflow {
- add work request for digit change to hours-tens to level 4 queue
- add work request for digit step level3 queue
- }
- on hours-twelve overflow {
- add work request for digit change to hours-ones to level 4 queue
- for (i=0; i<8; i++)
- add work request for digit step to level3 queue
- add work request for digit change to hours-tens to level 4 queue
- add work request for digit step to level 3 queue
- }
- }
-
- digit change {
- set multiplexor to select requested digit
- }
-
- digit step {
- for (i=1; i<60; i++) {
- add work request for one_pulse to level4 queue
- }
- }
-
- one_pulse {
- pulse stepping motor
- busy-wait for 10 ms
- return
- }
- ****************************Listing 7***********************
-
-
-
-